home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 2 / LSD and 17bit Compendium Deluxe - Volume II.iso / a / prog / asmsrc / roundequl.lha / RoundEqul.s < prev   
Encoding:
Text File  |  1980-01-01  |  45.4 KB  |  1,753 lines

  1.     Section    Demo,Code
  2.  
  3.     Opt    C-,O+,w-
  4.     
  5. Start:    lea    $dff000,a5        ; hardware base address
  6.  
  7.     Move.w    $1c(a5),OldInt    ; Save Old Interupts
  8.     Move.w    $02(a5),OldDma    ; Save Old DMA
  9.  
  10.     Move.w    #$7fff,$9a(a5)    ; Clear DMA
  11.     Move.w    #$7fff,$96(a5)    ; Clear Interupts
  12.     Move.w    #$7fff,$9c(a5)    ; Clear Interupt Requests
  13.     
  14.     Move.l    $6c.w,OldV3        ; save level 3 int
  15.  
  16.     Move.l    #my_level3,$6c.w    ; put new copper interupt
  17.     Move.l    #my_copper,$80(a5)     ; Address of copper 1
  18.     Move.w    #$e010,$9a(a5)    ; Start interupts
  19.  
  20.     Move.w    #$83ef,$96(a5)    ; Start DMA ( 83ff for disk dma)
  21.     Move.w    #1,$88(a5)        ; Strobe for copper start
  22.  
  23.  
  24.     *********************************************
  25.  
  26.     move.l    4,a6        ; execbase
  27.     move.b    530(a6),d0        ; execbase VBLANK_FREQUENCY
  28.  
  29.     MOVE.L    #1773447,D7     ; PAL CIA TIME
  30.     
  31.     cmp.b    #50,d0        ; check if 50hz
  32.     beq    _pal            
  33.     
  34.     MOVE.L    #1789773,D7     ; NTSC CIA TIME
  35.  
  36. _pal:    move.l    d7,deftime
  37.  
  38.     divu    #125,D7         ; Default to normal 50 Hz timer
  39.     move.w    d7,ciatime
  40.  
  41.     move.l    $78,old        ; store old level 6
  42.     move.l    #l6int,$78        ; install my level 6
  43.  
  44.     move.b    #$7f,$bfdd00    ; all cia timers off
  45.     move.b    #%00010001,$bfde00    ; cra
  46.     move.b    #%10000001,$bfdd00    ; icr
  47.  
  48.     move.w    ciatime,d7
  49.  
  50.     MOVE.B    d7,$bfd400
  51.     LSR.W    #8,D7
  52.     MOVE.B    d7,$bfd500
  53.  
  54.     *********************************************
  55.  
  56.     move.l    #scr1,d0
  57.     move.w    d0,bitplane0_lo
  58.     swap    d0
  59.     move.w    d0,bitplane0_hi
  60.     swap    d0
  61.     add.l    #26*203,d0
  62.     move.w    d0,bitplane1_lo
  63.     swap    d0
  64.     move.w    d0,bitplane1_hi
  65.     swap    d0
  66.     add.l    #26*203,d0
  67.     move.w    d0,bitplane2_lo
  68.     swap    d0
  69.     move.w    d0,bitplane2_hi
  70.     swap    d0
  71.     add.l    #26*203,d0
  72.     move.w    d0,bitplane3_lo
  73.     swap    d0
  74.     move.w    d0,bitplane3_hi
  75.     swap    d0
  76.     add.l    #26*203,d0
  77.     move.w    d0,bitplane4_lo
  78.     swap    d0
  79.     move.w    d0,bitplane4_hi
  80.  
  81.  
  82.     bsr    mt_init
  83.  
  84.     st    mt_enable
  85.  
  86. wait:    btst    #6,$bfe001
  87.     bne.s    wait        ; wait for lmb
  88.  
  89.     lea    $dff000,a5        ; hardware base address
  90.     move.l    #0,$80(a5)        ; blank copper list
  91.     move.l    #0,$84(a5)        ; if gfx lib not open (slayer boot)
  92.     move.w    #0,$180(a5)        ; bgc to black
  93.     
  94.     Move.l    OldV3,$6c.w        ; restore old l3
  95.  
  96.     move.l    old,$78        ; restore old level 6
  97.     bsr    mt_end
  98.  
  99.     Lea    GfxLib,a1        ; Pointer to Library Text
  100.     move.l    4.w,a6
  101.     jsr    -132(a6)        ; forbid
  102.     Move.l    4.w,a6        ; Exec
  103.     Moveq.l    #0,d0        ; Clear D0
  104.     Jsr    -$228(a6)        ; Open Library
  105.     cmp.l    #0,d0
  106.     beq    no_gfx_lib        ; if gfx lib not open dont restore copper lib (slayer boot)
  107.     
  108.     Move.l    d0,a1            
  109.     Move.l    $26(a1),$80(a5)    ; restore copper 1
  110.     Move.l    $32(a1),$84(a5)    ; restore copper 2
  111. no_gfx_lib:
  112.  
  113.     Move.w    OldInt,d0        ; start old interupts
  114.     Or.w    #$8000,d0
  115.     Move.w    d0,$9a(a5)
  116.     Move.w    OldDma,d0        ; start old DMA
  117.     Or.w    #$8000,d0
  118.     Move.w    d0,$96(a5)
  119.     Move.b    #$9b,$bfed01    ; Start Timers
  120.     Move.l    4.w,a6        ; Close Gfx lib
  121.     Jsr    -$19e(a6)
  122.     move.l    4.w,a6
  123.     jsr    -138(a6)        ; permit
  124.  
  125.     move.w    #0,$bfec00        ; clear kbd
  126.  
  127.     Moveq.l    #0,d0        ; No errors
  128.     Rts            ; Exit
  129.  
  130.  
  131. my_level3:
  132.     Movem.l    d0-d7/a0-a6,-(a7)    ; New copper
  133.     Move.w    #$10,$dff09c    ; Serviced Interupt
  134.  
  135.     move.l    equ1list,a0
  136.     lea    redcmap1+2,a1
  137.     move.w    #14,d0
  138. .loop1    move.w    (a0)+,(a1)
  139.     add.l    #4,a1
  140.     dbf    d0,.loop1
  141.  
  142.     move.l    equ2list,a0
  143.     lea    bluecmap1+2,a1
  144.     move.w    #14,d0
  145. .loop2    move.w    (a0)+,(a1)
  146.     add.l    #4,a1
  147.     dbf    d0,.loop2
  148.  
  149.     move.l    equ3list,a0
  150.     lea    redcmap2+2,a1
  151.     move.w    #14,d0
  152. .loop3    move.w    (a0)+,(a1)
  153.     add.l    #4,a1
  154.     dbf    d0,.loop3
  155.  
  156.     move.l    equ4list,a0
  157.     lea    bluecmap2+2,a1
  158.     move.w    #14,d0
  159. .loop4    move.w    (a0)+,(a1)
  160.     add.l    #4,a1
  161.     dbf    d0,.loop4
  162.  
  163.     ;sub.l    #1,delay
  164.     ;bpl    .noadd4
  165.  
  166.     ;move.l    #0,delay
  167.  
  168.     move.l    equ1list,a0
  169.     cmp.w    #0,(a0)
  170.     beq    .noadd1
  171.     add.l    #15*2,equ1list
  172. .noadd1    move.l    equ2list,a0
  173.     cmp.w    #0,(a0)
  174.     beq    .noadd2
  175.     add.l    #15*2,equ2list
  176. .noadd2    move.l    equ3list,a0
  177.     cmp.w    #0,(a0)
  178.     beq    .noadd3
  179.     add.l    #15*2,equ3list
  180. .noadd3    move.l    equ4list,a0
  181.     cmp.w    #0,(a0)
  182.     beq    .noadd4
  183.     add.l    #15*2,equ4list
  184. .noadd4
  185.  
  186. Exit:    Movem.l    (a7)+,d0-d7/a0-a6
  187.     Rte            ; Return from Interupt
  188.  
  189.     ****************************************************
  190.     
  191. l6int:    move.w    #$2000,$dff09c    ; serviced interupt
  192.     tst.b    $bfdd00        ; restart timers
  193.  
  194.     add.b    #1,counter
  195.     btst.b    #0,counter
  196.     bne    .not
  197.     
  198.     ;move.w    #$f00,$dff180
  199.  
  200.     bsr    mt_music
  201.  
  202.     ;move.w    #$00f,$dff180
  203.  
  204. .not    rte
  205.  
  206.     *******************************************************
  207.  
  208. ciatime:        dc.l    0
  209. deftime:        dc.l    0
  210. old:        dc.l    0
  211. counter:        dc.w    0
  212.  
  213. DMAWait = 300 ; Set this as low as possible without losing low notes.
  214.  
  215. ;---- Tempo ----
  216.  
  217. SetTempo    cmp.w    #32,d0
  218.     bhs.s    setemsk
  219.     moveq    #32,d0
  220. setemsk    move.w    d0,realtempo
  221.  
  222.     move.l    deftime,d2
  223.     divu    d0,d2
  224.  
  225.     move.w    d2,ciatime
  226.  
  227.     move.b    d2,$bfd400
  228.     lsr.w    #8,d2
  229.     move.b    d2,$bfd500
  230.     rts
  231.  
  232. RealTempo    dc.w 125
  233.  
  234. n_note        EQU    0  ; W
  235. n_cmd        EQU    2  ; W
  236. n_cmdlo        EQU    3  ; B
  237. n_start        EQU    4  ; L
  238. n_length        EQU    8  ; W
  239. n_loopstart    EQU    10 ; L
  240. n_replen        EQU    14 ; W
  241. n_period        EQU    16 ; W
  242. n_finetune    EQU    18 ; B
  243. n_volume        EQU    19 ; B
  244. n_dmabit        EQU    20 ; W
  245. n_toneportdirec    EQU    22 ; B
  246. n_toneportspeed    EQU    23 ; B
  247. n_wantedperiod    EQU    24 ; W
  248. n_vibratocmd    EQU    26 ; B
  249. n_vibratopos    EQU    27 ; B
  250. n_tremolocmd    EQU    28 ; B
  251. n_tremolopos    EQU    29 ; B
  252. n_wavecontrol    EQU    30 ; B
  253. n_glissfunk    EQU    31 ; B
  254. n_sampleoffset    EQU    32 ; B
  255. n_pattpos    EQU    33 ; B
  256. n_loopcount    EQU    34 ; B
  257. n_funkoffset    EQU    35 ; B
  258. n_wavestart    EQU    36 ; L
  259. n_reallength    EQU    40 ; W
  260.  
  261. mt_extract:    movem.l    d0-d7/a0-a6,-(a7)
  262.  
  263.     divu    #30,d4
  264.  
  265.     Cmp.l    #$dff0a0,a5
  266.     Bne.s    Mt_NN1
  267.     bsr    mt_startlist
  268.     move.l    d0,equ1list
  269. Mt_NN1:    Cmp.l    #$dff0b0,a5
  270.     Bne.s    Mt_NN2
  271.     bsr    mt_startlist
  272.     move.l    d0,equ2list
  273. Mt_NN2:    Cmp.l    #$dff0c0,a5
  274.     Bne.s    Mt_NN3
  275.     bsr    mt_startlist
  276.     move.l    d0,equ3list
  277. Mt_NN3:    Cmp.l    #$dff0d0,a5
  278.     Bne    Mt_NN4
  279.     bsr    mt_startlist
  280.     move.l    d0,equ4list
  281. Mt_NN4:    movem.l    (a7)+,d0-d7/a0-a6
  282.     rts
  283.  
  284. mt_startlist:    
  285.     and.w    #7,d4
  286.     asl.w    #2,d4
  287.     lea    col_list,a0
  288.     move.l    (a0,d4.w),d0
  289.     rts
  290.         
  291. mt_init    lea    mt_data,A0
  292.     MOVE.L    A0,mt_SongDataPtr
  293.     MOVE.L    A0,A1
  294.     LEA    952(A1),A1
  295.     MOVEQ    #127,D0
  296.     MOVEQ    #0,D1
  297. mtloop    MOVE.L    D1,D2
  298.     SUBQ.W    #1,D0
  299. mtloop2    MOVE.B    (A1)+,D1
  300.     CMP.B    D2,D1
  301.     BGT.S    mtloop
  302.     DBRA    D0,mtloop2
  303.     ADDQ.B    #1,D2
  304.             
  305.     LEA    mt_SampleStarts(PC),A1
  306.     ASL.L    #8,D2
  307.     ASL.L    #2,D2
  308.     ADD.L    #1084,D2
  309.     ADD.L    A0,D2
  310.     MOVE.L    D2,A2
  311.     MOVEQ    #30,D0
  312. mtloop3    CLR.L    (A2)
  313.     MOVE.L    A2,(A1)+
  314.     MOVEQ    #0,D1
  315.     MOVE.W    42(A0),D1
  316.     ASL.L    #1,D1
  317.     ADD.L    D1,A2
  318.     ADD.L    #30,A0
  319.     DBRA    D0,mtloop3
  320.  
  321.     OR.B    #2,$BFE001
  322.     MOVE.B    #6,mt_speed
  323.     CLR.B    mt_counter
  324.     CLR.B    mt_SongPos
  325.     CLR.W    mt_PatternPos
  326. mt_end    SF    mt_Enable
  327.     LEA    $DFF000,A0
  328.     CLR.W    $A8(A0)
  329.     CLR.W    $B8(A0)
  330.     CLR.W    $C8(A0)
  331.     CLR.W    $D8(A0)
  332.     MOVE.W    #$F,$DFF096
  333.     RTS
  334.  
  335. mt_music
  336.     MOVEM.L    D0-D4/A0-A6,-(SP)
  337.     TST.B    mt_Enable
  338.     BEQ    mt_exit
  339.     ADDQ.B    #1,mt_counter
  340.     MOVE.B    mt_counter(PC),D0
  341.     CMP.B    mt_speed(PC),D0
  342.     BLO.S    mt_NoNewNote
  343.     CLR.B    mt_counter
  344.     TST.B    mt_PattDelTime2
  345.     BEQ.S    mt_GetNewNote
  346.     BSR.S    mt_NoNewAllChannels
  347.     BRA    mt_dskip
  348.  
  349. mt_NoNewNote
  350.     BSR.S    mt_NoNewAllChannels
  351.     BRA    mt_NoNewPosYet
  352.  
  353. mt_NoNewAllChannels
  354.     LEA    $DFF0A0,A5
  355.     LEA    mt_chan1temp(PC),A6
  356.     BSR    mt_CheckEfx
  357.     LEA    $DFF0B0,A5
  358.     LEA    mt_chan2temp(PC),A6
  359.     BSR    mt_CheckEfx
  360.     LEA    $DFF0C0,A5
  361.     LEA    mt_chan3temp(PC),A6
  362.     BSR    mt_CheckEfx
  363.     LEA    $DFF0D0,A5
  364.     LEA    mt_chan4temp(PC),A6
  365.     BRA    mt_CheckEfx
  366.  
  367. mt_GetNewNote
  368.     MOVE.L    mt_SongDataPtr(PC),A0
  369.     LEA    12(A0),A3
  370.     LEA    952(A0),A2    ;pattpo
  371.     LEA    1084(A0),A0    ;patterndata
  372.     MOVEQ    #0,D0
  373.     MOVEQ    #0,D1
  374.     MOVE.B    mt_SongPos(PC),D0
  375.     MOVE.B    (A2,D0.W),D1
  376.     ASL.L    #8,D1
  377.     ASL.L    #2,D1
  378.     ADD.W    mt_PatternPos(PC),D1
  379.     CLR.W    mt_DMACONtemp
  380.  
  381.     LEA    $DFF0A0,A5
  382.     LEA    mt_chan1temp(PC),A6
  383.     BSR    mt_PlayVoice
  384.     
  385.     LEA    $DFF0B0,A5
  386.     LEA    mt_chan2temp(PC),A6
  387.     BSR.S    mt_PlayVoice
  388.     
  389.     LEA    $DFF0C0,A5
  390.     LEA    mt_chan3temp(PC),A6
  391.     BSR.S    mt_PlayVoice
  392.     
  393.     LEA    $DFF0D0,A5
  394.     LEA    mt_chan4temp(PC),A6
  395.     BSR.S    mt_PlayVoice
  396.  
  397.     BRA    mt_SetDMA
  398.  
  399. mt_PlayVoice
  400.     TST.L    (A6)
  401.     BNE.S    mt_plvskip
  402.     BSR    mt_PerNop
  403. mt_plvskip
  404.     MOVE.L    (A0,D1.L),(A6)
  405.     ADDQ.L    #4,D1
  406.     MOVEQ    #0,D2
  407.     MOVE.B    n_cmd(A6),D2
  408.     AND.B    #$F0,D2
  409.     LSR.B    #4,D2
  410.     MOVE.B    (A6),D0
  411.     AND.B    #$F0,D0
  412.     OR.B    D0,D2
  413.     TST.B    D2
  414.     BEQ    mt_SetRegs
  415.     MOVEQ    #0,D3
  416.     LEA    mt_SampleStarts(PC),A1
  417.     MOVE    D2,D4
  418.     SUBQ.L    #1,D2
  419.     ASL.L    #2,D2
  420.     MULU    #30,D4
  421.     MOVE.L    (A1,D2.L),n_start(A6)
  422.     MOVE.W    (A3,D4.L),n_length(A6)
  423.     MOVE.W    (A3,D4.L),n_reallength(A6)
  424.     MOVE.B    2(A3,D4.L),n_finetune(A6)
  425.     MOVE.B    3(A3,D4.L),n_volume(A6)
  426.  
  427.     MOVE.W    4(A3,D4.L),D3         ; Get repeat
  428.     TST.W    D3
  429.     BEQ.S    mt_NoLoop
  430.     MOVE.L    n_start(A6),D2        ; Get start
  431.     ASL.W    #1,D3
  432.     ADD.L    D3,D2            ; Add repeat
  433.     MOVE.L    D2,n_loopstart(A6)
  434.     MOVE.L    D2,n_wavestart(A6)
  435.     MOVE.W    4(A3,D4.L),D0        ; Get repeat
  436.     ADD.W    6(A3,D4.L),D0        ; Add replen
  437.     MOVE.W    D0,n_length(A6)
  438.     MOVE.W    6(A3,D4.L),n_replen(A6)    ; Save replen
  439.     MOVEQ    #0,D0
  440.     MOVE.B    n_volume(A6),D0
  441.     MOVE.W    D0,8(A5)    ; Set volume
  442.  
  443.     bsr    mt_extract
  444.     
  445.     BRA.S    mt_SetRegs
  446.  
  447. mt_NoLoop
  448.     MOVE.L    n_start(A6),D2
  449.     ADD.L    D3,D2
  450.     MOVE.L    D2,n_loopstart(A6)
  451.     MOVE.L    D2,n_wavestart(A6)
  452.     MOVE.W    6(A3,D4.L),n_replen(A6)    ; Save replen
  453.     MOVEQ    #0,D0
  454.     MOVE.B    n_volume(A6),D0
  455.     MOVE.W    D0,8(A5)    ; Set volume
  456.  
  457.     bsr    mt_extract
  458.  
  459. mt_SetRegs
  460.     MOVE.W    (A6),D0
  461.     AND.W    #$0FFF,D0
  462.     BEQ    mt_CheckMoreEfx        ; If no note
  463.     MOVE.W    2(A6),D0
  464.     AND.W    #$0FF0,D0
  465.     CMP.W    #$0E50,D0
  466.     BEQ.S    mt_DoSetFineTune
  467.     MOVE.B    2(A6),D0
  468.     AND.B    #$0F,D0
  469.     CMP.B    #3,D0    ; TonePortamento
  470.     BEQ.S    mt_ChkTonePorta
  471.     CMP.B    #5,D0
  472.     BEQ.S    mt_ChkTonePorta
  473.     CMP.B    #9,D0    ; Sample Offset
  474.     BNE.S    mt_SetPeriod
  475.     BSR    mt_CheckMoreEfx
  476.     BRA.S    mt_SetPeriod
  477.  
  478. mt_DoSetFineTune
  479.     BSR    mt_SetFineTune
  480.     BRA.S    mt_SetPeriod
  481.  
  482. mt_ChkTonePorta
  483.     BSR    mt_SetTonePorta
  484.     BRA    mt_CheckMoreEfx
  485.  
  486. mt_SetPeriod
  487.     MOVEM.L    D0-D1/A0-A1,-(SP)
  488.     MOVE.W    (A6),D1
  489.     AND.W    #$0FFF,D1
  490.     LEA    mt_PeriodTable(PC),A1
  491.     MOVEQ    #0,D0
  492.     MOVEQ    #36,D2
  493. mt_ftuloop
  494.     CMP.W    (A1,D0.W),D1
  495.     BHS.S    mt_ftufound
  496.     ADDQ.L    #2,D0
  497.     DBRA    D2,mt_ftuloop
  498. mt_ftufound
  499.     MOVEQ    #0,D1
  500.     MOVE.B    n_finetune(A6),D1
  501.     MULU    #36*2,D1
  502.     ADD.L    D1,A1
  503.     MOVE.W    (A1,D0.W),n_period(A6)
  504.     MOVEM.L    (SP)+,D0-D1/A0-A1
  505.  
  506.     MOVE.W    2(A6),D0
  507.     AND.W    #$0FF0,D0
  508.     CMP.W    #$0ED0,D0 ; Notedelay
  509.     BEQ    mt_CheckMoreEfx
  510.  
  511.     MOVE.W    n_dmabit(A6),$DFF096
  512.     BTST    #2,n_wavecontrol(A6)
  513.     BNE.S    mt_vibnoc
  514.     CLR.B    n_vibratopos(A6)
  515. mt_vibnoc
  516.     BTST    #6,n_wavecontrol(A6)
  517.     BNE.S    mt_trenoc
  518.     CLR.B    n_tremolopos(A6)
  519. mt_trenoc
  520.     MOVE.L    n_start(A6),(A5)        ; Set start
  521.     MOVE.W    n_length(A6),4(A5)    ; Set length
  522.     MOVE.W    n_period(A6),D0
  523.     MOVE.W    D0,6(A5)            ; Set period
  524.     MOVE.W    n_dmabit(A6),D0
  525.     OR.W    D0,mt_DMACONtemp
  526.     BRA    mt_CheckMoreEfx
  527.  
  528. mt_SetDMA
  529.     MOVE.W    #300,D0
  530. mt_WaitDMA
  531.     DBRA    D0,mt_WaitDMA
  532.     MOVE.W    mt_DMACONtemp(PC),D0
  533.     OR.W    #$8000,D0
  534.     MOVE.W    D0,$DFF096
  535.     MOVE.W    #300,D0
  536. mt_WaitDMA2
  537.     DBRA    D0,mt_WaitDMA2
  538.  
  539.     LEA    $DFF000,A5
  540.     LEA    mt_chan4temp(PC),A6
  541.     MOVE.L    n_loopstart(A6),$D0(A5)
  542.     MOVE.W    n_replen(A6),$D4(A5)
  543.     LEA    mt_chan3temp(PC),A6
  544.     MOVE.L    n_loopstart(A6),$C0(A5)
  545.     MOVE.W    n_replen(A6),$C4(A5)
  546.     LEA    mt_chan2temp(PC),A6
  547.     MOVE.L    n_loopstart(A6),$B0(A5)
  548.     MOVE.W    n_replen(A6),$B4(A5)
  549.     LEA    mt_chan1temp(PC),A6
  550.     MOVE.L    n_loopstart(A6),$A0(A5)
  551.     MOVE.W    n_replen(A6),$A4(A5)
  552.  
  553. mt_dskip
  554.     ADD.W    #16,mt_PatternPos
  555.     MOVE.B    mt_PattDelTime,D0
  556.     BEQ.S    mt_dskc
  557.     MOVE.B    D0,mt_PattDelTime2
  558.     CLR.B    mt_PattDelTime
  559. mt_dskc    TST.B    mt_PattDelTime2
  560.     BEQ.S    mt_dska
  561.     SUBQ.B    #1,mt_PattDelTime2
  562.     BEQ.S    mt_dska
  563.     SUB.W    #16,mt_PatternPos
  564. mt_dska    TST.B    mt_PBreakFlag
  565.     BEQ.S    mt_nnpysk
  566.     SF    mt_PBreakFlag
  567.     MOVEQ    #0,D0
  568.     MOVE.B    mt_PBreakPos(PC),D0
  569.     CLR.B    mt_PBreakPos
  570.     LSL.W    #4,D0
  571.     MOVE.W    D0,mt_PatternPos
  572. mt_nnpysk
  573.     CMP.W    #1024,mt_PatternPos
  574.     BLO.S    mt_NoNewPosYet
  575. mt_NextPosition    
  576.     MOVEQ    #0,D0
  577.     MOVE.B    mt_PBreakPos(PC),D0
  578.     LSL.W    #4,D0
  579.     MOVE.W    D0,mt_PatternPos
  580.     CLR.B    mt_PBreakPos
  581.     CLR.B    mt_PosJumpFlag
  582.     ADDQ.B    #1,mt_SongPos
  583.     AND.B    #$7F,mt_SongPos
  584.     MOVE.B    mt_SongPos(PC),D1
  585.     MOVE.L    mt_SongDataPtr(PC),A0
  586.     CMP.B    950(A0),D1
  587.     BLO.S    mt_NoNewPosYet
  588.     CLR.B    mt_SongPos
  589. mt_NoNewPosYet    
  590.     TST.B    mt_PosJumpFlag
  591.     BNE.S    mt_NextPosition
  592. mt_exit    MOVEM.L    (SP)+,D0-D4/A0-A6
  593.     RTS
  594.  
  595. mt_CheckEfx
  596.     BSR    mt_UpdateFunk
  597.     MOVE.W    n_cmd(A6),D0
  598.     AND.W    #$0FFF,D0
  599.     BEQ.S    mt_PerNop
  600.     MOVE.B    n_cmd(A6),D0
  601.     AND.B    #$0F,D0
  602.     BEQ.S    mt_Arpeggio
  603.     CMP.B    #1,D0
  604.     BEQ    mt_PortaUp
  605.     CMP.B    #2,D0
  606.     BEQ    mt_PortaDown
  607.     CMP.B    #3,D0
  608.     BEQ    mt_TonePortamento
  609.     CMP.B    #4,D0
  610.     BEQ    mt_Vibrato
  611.     CMP.B    #5,D0
  612.     BEQ    mt_TonePlusVolSlide
  613.     CMP.B    #6,D0
  614.     BEQ    mt_VibratoPlusVolSlide
  615.     CMP.B    #$E,D0
  616.     BEQ    mt_E_Commands
  617. SetBack    MOVE.W    n_period(A6),6(A5)
  618.     CMP.B    #7,D0
  619.     BEQ    mt_Tremolo
  620.     CMP.B    #$A,D0
  621.     BEQ    mt_VolumeSlide
  622. mt_Return
  623.     RTS
  624.  
  625. mt_PerNop
  626.     MOVE.W    n_period(A6),6(A5)
  627.     RTS
  628.  
  629. mt_Arpeggio
  630.     MOVEQ    #0,D0
  631.     MOVE.B    mt_counter(PC),D0
  632.     DIVS    #3,D0
  633.     SWAP    D0
  634.     CMP.W    #0,D0
  635.     BEQ.S    mt_Arpeggio2
  636.     CMP.W    #2,D0
  637.     BEQ.S    mt_Arpeggio1
  638.     MOVEQ    #0,D0
  639.     MOVE.B    n_cmdlo(A6),D0
  640.     LSR.B    #4,D0
  641.     BRA.S    mt_Arpeggio3
  642.  
  643. mt_Arpeggio1
  644.     MOVEQ    #0,D0
  645.     MOVE.B    n_cmdlo(A6),D0
  646.     AND.B    #15,D0
  647.     BRA.S    mt_Arpeggio3
  648.  
  649. mt_Arpeggio2
  650.     MOVE.W    n_period(A6),D2
  651.     BRA.S    mt_Arpeggio4
  652.  
  653. mt_Arpeggio3
  654.     ASL.W    #1,D0
  655.     MOVEQ    #0,D1
  656.     MOVE.B    n_finetune(A6),D1
  657.     MULU    #36*2,D1
  658.     LEA    mt_PeriodTable(PC),A0
  659.     ADD.L    D1,A0
  660.     MOVEQ    #0,D1
  661.     MOVE.W    n_period(A6),D1
  662.     MOVEQ    #36,D3
  663. mt_arploop
  664.     MOVE.W    (A0,D0.W),D2
  665.     CMP.W    (A0),D1
  666.     BHS.S    mt_Arpeggio4
  667.     ADDQ.L    #2,A0
  668.     DBRA    D3,mt_arploop
  669.     RTS
  670.  
  671. mt_Arpeggio4
  672.     MOVE.W    D2,6(A5)
  673.     RTS
  674.  
  675. mt_FinePortaUp
  676.     TST.B    mt_counter
  677.     BNE.S    mt_Return
  678.     MOVE.B    #$0F,mt_LowMask
  679. mt_PortaUp
  680.     MOVEQ    #0,D0
  681.     MOVE.B    n_cmdlo(A6),D0
  682.     AND.B    mt_LowMask(PC),D0
  683.     MOVE.B    #$FF,mt_LowMask
  684.     SUB.W    D0,n_period(A6)
  685.     MOVE.W    n_period(A6),D0
  686.     AND.W    #$0FFF,D0
  687.     CMP.W    #113,D0
  688.     BPL.S    mt_PortaUskip
  689.     AND.W    #$F000,n_period(A6)
  690.     OR.W    #113,n_period(A6)
  691. mt_PortaUskip
  692.     MOVE.W    n_period(A6),D0
  693.     AND.W    #$0FFF,D0
  694.     MOVE.W    D0,6(A5)
  695.     RTS    
  696.  
  697. mt_FinePortaDown
  698.     TST.B    mt_counter
  699.     BNE    mt_Return
  700.     MOVE.B    #$0F,mt_LowMask
  701. mt_PortaDown
  702.     CLR.W    D0
  703.     MOVE.B    n_cmdlo(A6),D0
  704.     AND.B    mt_LowMask(PC),D0
  705.     MOVE.B    #$FF,mt_LowMask
  706.     ADD.W    D0,n_period(A6)
  707.     MOVE.W    n_period(A6),D0
  708.     AND.W    #$0FFF,D0
  709.     CMP.W    #856,D0
  710.     BMI.S    mt_PortaDskip
  711.     AND.W    #$F000,n_period(A6)
  712.     OR.W    #856,n_period(A6)
  713. mt_PortaDskip
  714.     MOVE.W    n_period(A6),D0
  715.     AND.W    #$0FFF,D0
  716.     MOVE.W    D0,6(A5)
  717.     RTS
  718.  
  719. mt_SetTonePorta
  720.     MOVE.L    A0,-(SP)
  721.     MOVE.W    (A6),D2
  722.     AND.W    #$0FFF,D2
  723.     MOVEQ    #0,D0
  724.     MOVE.B    n_finetune(A6),D0
  725.     MULU    #37*2,D0
  726.     LEA    mt_PeriodTable(PC),A0
  727.     ADD.L    D0,A0
  728.     MOVEQ    #0,D0
  729. mt_StpLoop
  730.     CMP.W    (A0,D0.W),D2
  731.     BHS.S    mt_StpFound
  732.     ADDQ.W    #2,D0
  733.     CMP.W    #37*2,D0
  734.     BLO.S    mt_StpLoop
  735.     MOVEQ    #35*2,D0
  736. mt_StpFound
  737.     MOVE.B    n_finetune(A6),D2
  738.     AND.B    #8,D2
  739.     BEQ.S    mt_StpGoss
  740.     TST.W    D0
  741.     BEQ.S    mt_StpGoss
  742.     SUBQ.W    #2,D0
  743. mt_StpGoss
  744.     MOVE.W    (A0,D0.W),D2
  745.     MOVE.L    (SP)+,A0
  746.     MOVE.W    D2,n_wantedperiod(A6)
  747.     MOVE.W    n_period(A6),D0
  748.     CLR.B    n_toneportdirec(A6)
  749.     CMP.W    D0,D2
  750.     BEQ.S    mt_ClearTonePorta
  751.     BGE    mt_Return
  752.     MOVE.B    #1,n_toneportdirec(A6)
  753.     RTS
  754.  
  755. mt_ClearTonePorta
  756.     CLR.W    n_wantedperiod(A6)
  757.     RTS
  758.  
  759. mt_TonePortamento
  760.     MOVE.B    n_cmdlo(A6),D0
  761.     BEQ.S    mt_TonePortNoChange
  762.     MOVE.B    D0,n_toneportspeed(A6)
  763.     CLR.B    n_cmdlo(A6)
  764. mt_TonePortNoChange
  765.     TST.W    n_wantedperiod(A6)
  766.     BEQ    mt_Return
  767.     MOVEQ    #0,D0
  768.     MOVE.B    n_toneportspeed(A6),D0
  769.     TST.B    n_toneportdirec(A6)
  770.     BNE.S    mt_TonePortaUp
  771. mt_TonePortaDown
  772.     ADD.W    D0,n_period(A6)
  773.     MOVE.W    n_wantedperiod(A6),D0
  774.     CMP.W    n_period(A6),D0
  775.     BGT.S    mt_TonePortaSetPer
  776.     MOVE.W    n_wantedperiod(A6),n_period(A6)
  777.     CLR.W    n_wantedperiod(A6)
  778.     BRA.S    mt_TonePortaSetPer
  779.  
  780. mt_TonePortaUp
  781.     SUB.W    D0,n_period(A6)
  782.     MOVE.W    n_wantedperiod(A6),D0
  783.     CMP.W    n_period(A6),D0
  784.     BLT.S    mt_TonePortaSetPer
  785.     MOVE.W    n_wantedperiod(A6),n_period(A6)
  786.     CLR.W    n_wantedperiod(A6)
  787.  
  788. mt_TonePortaSetPer
  789.     MOVE.W    n_period(A6),D2
  790.     MOVE.B    n_glissfunk(A6),D0
  791.     AND.B    #$0F,D0
  792.     BEQ.S    mt_GlissSkip
  793.     MOVEQ    #0,D0
  794.     MOVE.B    n_finetune(A6),D0
  795.     MULU    #36*2,D0
  796.     LEA    mt_PeriodTable(PC),A0
  797.     ADD.L    D0,A0
  798.     MOVEQ    #0,D0
  799. mt_GlissLoop
  800.     CMP.W    (A0,D0.W),D2
  801.     BHS.S    mt_GlissFound
  802.     ADDQ.W    #2,D0
  803.     CMP.W    #36*2,D0
  804.     BLO.S    mt_GlissLoop
  805.     MOVEQ    #35*2,D0
  806. mt_GlissFound
  807.     MOVE.W    (A0,D0.W),D2
  808. mt_GlissSkip
  809.     MOVE.W    D2,6(A5) ; Set period
  810.     RTS
  811.  
  812. mt_Vibrato
  813.     MOVE.B    n_cmdlo(A6),D0
  814.     BEQ.S    mt_Vibrato2
  815.     MOVE.B    n_vibratocmd(A6),D2
  816.     AND.B    #$0F,D0
  817.     BEQ.S    mt_vibskip
  818.     AND.B    #$F0,D2
  819.     OR.B    D0,D2
  820. mt_vibskip
  821.     MOVE.B    n_cmdlo(A6),D0
  822.     AND.B    #$F0,D0
  823.     BEQ.S    mt_vibskip2
  824.     AND.B    #$0F,D2
  825.     OR.B    D0,D2
  826. mt_vibskip2
  827.     MOVE.B    D2,n_vibratocmd(A6)
  828. mt_Vibrato2
  829.     MOVE.B    n_vibratopos(A6),D0
  830.     LEA    mt_VibratoTable(PC),A4
  831.     LSR.W    #2,D0
  832.     AND.W    #$001F,D0
  833.     MOVEQ    #0,D2
  834.     MOVE.B    n_wavecontrol(A6),D2
  835.     AND.B    #$03,D2
  836.     BEQ.S    mt_vib_sine
  837.     LSL.B    #3,D0
  838.     CMP.B    #1,D2
  839.     BEQ.S    mt_vib_rampdown
  840.     MOVE.B    #255,D2
  841.     BRA.S    mt_vib_set
  842. mt_vib_rampdown
  843.     TST.B    n_vibratopos(A6)
  844.     BPL.S    mt_vib_rampdown2
  845.     MOVE.B    #255,D2
  846.     SUB.B    D0,D2
  847.     BRA.S    mt_vib_set
  848. mt_vib_rampdown2
  849.     MOVE.B    D0,D2
  850.     BRA.S    mt_vib_set
  851. mt_vib_sine
  852.     MOVE.B    (A4,D0.W),D2
  853. mt_vib_set
  854.     MOVE.B    n_vibratocmd(A6),D0
  855.     AND.W    #15,D0
  856.     MULU    D0,D2
  857.     LSR.W    #7,D2
  858.     MOVE.W    n_period(A6),D0
  859.     TST.B    n_vibratopos(A6)
  860.     BMI.S    mt_VibratoNeg
  861.     ADD.W    D2,D0
  862.     BRA.S    mt_Vibrato3
  863. mt_VibratoNeg
  864.     SUB.W    D2,D0
  865. mt_Vibrato3
  866.     MOVE.W    D0,6(A5)
  867.     MOVE.B    n_vibratocmd(A6),D0
  868.     LSR.W    #2,D0
  869.     AND.W    #$003C,D0
  870.     ADD.B    D0,n_vibratopos(A6)
  871.     RTS
  872.  
  873. mt_TonePlusVolSlide
  874.     BSR    mt_TonePortNoChange
  875.     BRA    mt_VolumeSlide
  876.  
  877. mt_VibratoPlusVolSlide
  878.     BSR.S    mt_Vibrato2
  879.     BRA    mt_VolumeSlide
  880.  
  881. mt_Tremolo
  882.     MOVE.B    n_cmdlo(A6),D0
  883.     BEQ.S    mt_Tremolo2
  884.     MOVE.B    n_tremolocmd(A6),D2
  885.     AND.B    #$0F,D0
  886.     BEQ.S    mt_treskip
  887.     AND.B    #$F0,D2
  888.     OR.B    D0,D2
  889. mt_treskip
  890.     MOVE.B    n_cmdlo(A6),D0
  891.     AND.B    #$F0,D0
  892.     BEQ.S    mt_treskip2
  893.     AND.B    #$0F,D2
  894.     OR.B    D0,D2
  895. mt_treskip2
  896.     MOVE.B    D2,n_tremolocmd(A6)
  897. mt_Tremolo2
  898.     MOVE.B    n_tremolopos(A6),D0
  899.     LEA    mt_VibratoTable(PC),A4
  900.     LSR.W    #2,D0
  901.     AND.W    #$001F,D0
  902.     MOVEQ    #0,D2
  903.     MOVE.B    n_wavecontrol(A6),D2
  904.     LSR.B    #4,D2
  905.     AND.B    #$03,D2
  906.     BEQ.S    mt_tre_sine
  907.     LSL.B    #3,D0
  908.     CMP.B    #1,D2
  909.     BEQ.S    mt_tre_rampdown
  910.     MOVE.B    #255,D2
  911.     BRA.S    mt_tre_set
  912. mt_tre_rampdown
  913.     TST.B    n_vibratopos(A6)
  914.     BPL.S    mt_tre_rampdown2
  915.     MOVE.B    #255,D2
  916.     SUB.B    D0,D2
  917.     BRA.S    mt_tre_set
  918. mt_tre_rampdown2
  919.     MOVE.B    D0,D2
  920.     BRA.S    mt_tre_set
  921. mt_tre_sine
  922.     MOVE.B    (A4,D0.W),D2
  923. mt_tre_set
  924.     MOVE.B    n_tremolocmd(A6),D0
  925.     AND.W    #15,D0
  926.     MULU    D0,D2
  927.     LSR.W    #6,D2
  928.     MOVEQ    #0,D0
  929.     MOVE.B    n_volume(A6),D0
  930.     TST.B    n_tremolopos(A6)
  931.     BMI.S    mt_TremoloNeg
  932.     ADD.W    D2,D0
  933.     BRA.S    mt_Tremolo3
  934. mt_TremoloNeg
  935.     SUB.W    D2,D0
  936. mt_Tremolo3
  937.     BPL.S    mt_TremoloSkip
  938.     CLR.W    D0
  939. mt_TremoloSkip
  940.     CMP.W    #$40,D0
  941.     BLS.S    mt_TremoloOk
  942.     MOVE.W    #$40,D0
  943. mt_TremoloOk
  944.     MOVE.W    D0,8(A5)
  945.     MOVE.B    n_tremolocmd(A6),D0
  946.     LSR.W    #2,D0
  947.     AND.W    #$003C,D0
  948.     ADD.B    D0,n_tremolopos(A6)
  949.     RTS
  950.  
  951. mt_SampleOffset
  952.     MOVEQ    #0,D0
  953.     MOVE.B    n_cmdlo(A6),D0
  954.     BEQ.S    mt_sononew
  955.     MOVE.B    D0,n_sampleoffset(A6)
  956. mt_sononew
  957.     MOVE.B    n_sampleoffset(A6),D0
  958.     LSL.W    #7,D0
  959.     CMP.W    n_length(A6),D0
  960.     BGE.S    mt_sofskip
  961.     SUB.W    D0,n_length(A6)
  962.     LSL.W    #1,D0
  963.     ADD.L    D0,n_start(A6)
  964.     RTS
  965. mt_sofskip
  966.     MOVE.W    #$0001,n_length(A6)
  967.     RTS
  968.  
  969. mt_VolumeSlide
  970.     MOVEQ    #0,D0
  971.     MOVE.B    n_cmdlo(A6),D0
  972.     LSR.B    #4,D0
  973.     TST.B    D0
  974.     BEQ.S    mt_VolSlideDown
  975. mt_VolSlideUp
  976.     ADD.B    D0,n_volume(A6)
  977.     CMP.B    #$40,n_volume(A6)
  978.     BMI.S    mt_vsuskip
  979.     MOVE.B    #$40,n_volume(A6)
  980. mt_vsuskip
  981.     MOVE.B    n_volume(A6),D0
  982.     MOVE.W    D0,8(A5)
  983.     RTS
  984.  
  985. mt_VolSlideDown
  986.     MOVEQ    #0,D0
  987.     MOVE.B    n_cmdlo(A6),D0
  988.     AND.B    #$0F,D0
  989. mt_VolSlideDown2
  990.     SUB.B    D0,n_volume(A6)
  991.     BPL.S    mt_vsdskip
  992.     CLR.B    n_volume(A6)
  993. mt_vsdskip
  994.     MOVE.B    n_volume(A6),D0
  995.     MOVE.W    D0,8(A5)
  996.     RTS
  997.  
  998. mt_PositionJump
  999.     MOVE.B    n_cmdlo(A6),D0
  1000.     SUBQ.B    #1,D0
  1001.     MOVE.B    D0,mt_SongPos
  1002. mt_pj2    CLR.B    mt_PBreakPos
  1003.     ST     mt_PosJumpFlag
  1004.     RTS
  1005.  
  1006. mt_VolumeChange
  1007.     MOVEQ    #0,D0
  1008.     MOVE.B    n_cmdlo(A6),D0
  1009.     CMP.B    #$40,D0
  1010.     BLS.S    mt_VolumeOk
  1011.     MOVEQ    #$40,D0
  1012. mt_VolumeOk
  1013.     MOVE.B    D0,n_volume(A6)
  1014.     MOVE.W    D0,8(A5)
  1015.     RTS
  1016.  
  1017. mt_PatternBreak
  1018.     MOVEQ    #0,D0
  1019.     MOVE.B    n_cmdlo(A6),D0
  1020.     MOVE.L    D0,D2
  1021.     LSR.B    #4,D0
  1022.     MULU    #10,D0
  1023.     AND.B    #$0F,D2
  1024.     ADD.B    D2,D0
  1025.     CMP.B    #63,D0
  1026.     BHI.S    mt_pj2
  1027.     MOVE.B    D0,mt_PBreakPos
  1028.     ST    mt_PosJumpFlag
  1029.     RTS
  1030.  
  1031. mt_SetSpeed
  1032.     MOVEQ    #0,D0
  1033.     MOVE.B    3(A6),D0
  1034.     BEQ    mt_end
  1035.     CMP.B    #32,D0
  1036.     BHS    SetTempo
  1037.     CLR.B    mt_counter
  1038.     MOVE.B    D0,mt_speed
  1039.     RTS
  1040.  
  1041.  
  1042. mt_CheckMoreEfx
  1043.     BSR    mt_UpdateFunk
  1044.     MOVE.B    2(A6),D0
  1045.     AND.B    #$0F,D0
  1046.     CMP.B    #$9,D0
  1047.     BEQ    mt_SampleOffset
  1048.     CMP.B    #$B,D0
  1049.     BEQ    mt_PositionJump
  1050.     CMP.B    #$D,D0
  1051.     BEQ    mt_PatternBreak
  1052.     CMP.B    #$E,D0
  1053.     BEQ.S    mt_E_Commands
  1054.     CMP.B    #$F,D0
  1055.     BEQ    mt_SetSpeed
  1056.     CMP.B    #$C,D0
  1057.     BEQ    mt_VolumeChange
  1058.     BRA    mt_PerNop
  1059.  
  1060. mt_E_Commands
  1061.     MOVE.B    n_cmdlo(A6),D0
  1062.     AND.B    #$F0,D0
  1063.     LSR.B    #4,D0
  1064.     BEQ.S    mt_FilterOnOff
  1065.     CMP.B    #1,D0
  1066.     BEQ    mt_FinePortaUp
  1067.     CMP.B    #2,D0
  1068.     BEQ    mt_FinePortaDown
  1069.     CMP.B    #3,D0
  1070.     BEQ.S    mt_SetGlissControl
  1071.     CMP.B    #4,D0
  1072.     BEQ    mt_SetVibratoControl
  1073.     CMP.B    #5,D0
  1074.     BEQ    mt_SetFineTune
  1075.     CMP.B    #6,D0
  1076.     BEQ    mt_JumpLoop
  1077.     CMP.B    #7,D0
  1078.     BEQ    mt_SetTremoloControl
  1079.     CMP.B    #9,D0
  1080.     BEQ    mt_RetrigNote
  1081.     CMP.B    #$A,D0
  1082.     BEQ    mt_VolumeFineUp
  1083.     CMP.B    #$B,D0
  1084.     BEQ    mt_VolumeFineDown
  1085.     CMP.B    #$C,D0
  1086.     BEQ    mt_NoteCut
  1087.     CMP.B    #$D,D0
  1088.     BEQ    mt_NoteDelay
  1089.     CMP.B    #$E,D0
  1090.     BEQ    mt_PatternDelay
  1091.     CMP.B    #$F,D0
  1092.     BEQ    mt_FunkIt
  1093.     RTS
  1094.  
  1095. mt_FilterOnOff
  1096.     MOVE.B    n_cmdlo(A6),D0
  1097.     AND.B    #1,D0
  1098.     ASL.B    #1,D0
  1099.     AND.B    #$FD,$BFE001
  1100.     OR.B    D0,$BFE001
  1101.     RTS    
  1102.  
  1103. mt_SetGlissControl
  1104.     MOVE.B    n_cmdlo(A6),D0
  1105.     AND.B    #$0F,D0
  1106.     AND.B    #$F0,n_glissfunk(A6)
  1107.     OR.B    D0,n_glissfunk(A6)
  1108.     RTS
  1109.  
  1110. mt_SetVibratoControl
  1111.     MOVE.B    n_cmdlo(A6),D0
  1112.     AND.B    #$0F,D0
  1113.     AND.B    #$F0,n_wavecontrol(A6)
  1114.     OR.B    D0,n_wavecontrol(A6)
  1115.     RTS
  1116.  
  1117. mt_SetFineTune
  1118.     MOVE.B    n_cmdlo(A6),D0
  1119.     AND.B    #$0F,D0
  1120.     MOVE.B    D0,n_finetune(A6)
  1121.     RTS
  1122.  
  1123. mt_JumpLoop
  1124.     TST.B    mt_counter
  1125.     BNE    mt_Return
  1126.     MOVE.B    n_cmdlo(A6),D0
  1127.     AND.B    #$0F,D0
  1128.     BEQ.S    mt_SetLoop
  1129.     TST.B    n_loopcount(A6)
  1130.     BEQ.S    mt_jumpcnt
  1131.     SUBQ.B    #1,n_loopcount(A6)
  1132.     BEQ    mt_Return
  1133. mt_jmploop    MOVE.B    n_pattpos(A6),mt_PBreakPos
  1134.     ST    mt_PBreakFlag
  1135.     RTS
  1136.  
  1137. mt_jumpcnt
  1138.     MOVE.B    D0,n_loopcount(A6)
  1139.     BRA.S    mt_jmploop
  1140.  
  1141. mt_SetLoop
  1142.     MOVE.W    mt_PatternPos(PC),D0
  1143.     LSR.W    #4,D0
  1144.     MOVE.B    D0,n_pattpos(A6)
  1145.     RTS
  1146.  
  1147. mt_SetTremoloControl
  1148.     MOVE.B    n_cmdlo(A6),D0
  1149.     AND.B    #$0F,D0
  1150.     LSL.B    #4,D0
  1151.     AND.B    #$0F,n_wavecontrol(A6)
  1152.     OR.B    D0,n_wavecontrol(A6)
  1153.     RTS
  1154.  
  1155. mt_RetrigNote
  1156.     MOVE.L    D1,-(SP)
  1157.     MOVEQ    #0,D0
  1158.     MOVE.B    n_cmdlo(A6),D0
  1159.     AND.B    #$0F,D0
  1160.     BEQ.S    mt_rtnend
  1161.     MOVEQ    #0,D1
  1162.     MOVE.B    mt_counter(PC),D1
  1163.     BNE.S    mt_rtnskp
  1164.     MOVE.W    (A6),D1
  1165.     AND.W    #$0FFF,D1
  1166.     BNE.S    mt_rtnend
  1167.     MOVEQ    #0,D1
  1168.     MOVE.B    mt_counter(PC),D1
  1169. mt_rtnskp
  1170.     DIVU    D0,D1
  1171.     SWAP    D1
  1172.     TST.W    D1
  1173.     BNE.S    mt_rtnend
  1174. mt_DoRetrig
  1175.     MOVE.W    n_dmabit(A6),$DFF096    ; Channel DMA off
  1176.     MOVE.L    n_start(A6),(A5)    ; Set sampledata pointer
  1177.     MOVE.W    n_length(A6),4(A5)    ; Set length
  1178.     MOVE.W    #300,D0
  1179. mt_rtnloop1
  1180.     DBRA    D0,mt_rtnloop1
  1181.     MOVE.W    n_dmabit(A6),D0
  1182.     BSET    #15,D0
  1183.     MOVE.W    D0,$DFF096
  1184.     MOVE.W    #300,D0
  1185. mt_rtnloop2
  1186.     DBRA    D0,mt_rtnloop2
  1187.     MOVE.L    n_loopstart(A6),(A5)
  1188.     MOVE.L    n_replen(A6),4(A5)
  1189. mt_rtnend
  1190.     MOVE.L    (SP)+,D1
  1191.     RTS
  1192.  
  1193. mt_VolumeFineUp
  1194.     TST.B    mt_counter
  1195.     BNE    mt_Return
  1196.     MOVEQ    #0,D0
  1197.     MOVE.B    n_cmdlo(A6),D0
  1198.     AND.B    #$F,D0
  1199.     BRA    mt_VolSlideUp
  1200.  
  1201. mt_VolumeFineDown
  1202.     TST.B    mt_counter
  1203.     BNE    mt_Return
  1204.     MOVEQ    #0,D0
  1205.     MOVE.B    n_cmdlo(A6),D0
  1206.     AND.B    #$0F,D0
  1207.     BRA    mt_VolSlideDown2
  1208.  
  1209. mt_NoteCut
  1210.     MOVEQ    #0,D0
  1211.     MOVE.B    n_cmdlo(A6),D0
  1212.     AND.B    #$0F,D0
  1213.     CMP.B    mt_counter(PC),D0
  1214.     BNE    mt_Return
  1215.     CLR.B    n_volume(A6)
  1216.     MOVE.W    #0,8(A5)
  1217.     RTS
  1218.  
  1219. mt_NoteDelay
  1220.     MOVEQ    #0,D0
  1221.     MOVE.B    n_cmdlo(A6),D0
  1222.     AND.B    #$0F,D0
  1223.     CMP.B    mt_Counter,D0
  1224.     BNE    mt_Return
  1225.     MOVE.W    (A6),D0
  1226.     BEQ    mt_Return
  1227.     MOVE.L    D1,-(SP)
  1228.     BRA    mt_DoRetrig
  1229.  
  1230. mt_PatternDelay
  1231.     TST.B    mt_counter
  1232.     BNE    mt_Return
  1233.     MOVEQ    #0,D0
  1234.     MOVE.B    n_cmdlo(A6),D0
  1235.     AND.B    #$0F,D0
  1236.     TST.B    mt_PattDelTime2
  1237.     BNE    mt_Return
  1238.     ADDQ.B    #1,D0
  1239.     MOVE.B    D0,mt_PattDelTime
  1240.     RTS
  1241.  
  1242. mt_FunkIt
  1243.     TST.B    mt_counter
  1244.     BNE    mt_Return
  1245.     MOVE.B    n_cmdlo(A6),D0
  1246.     AND.B    #$0F,D0
  1247.     LSL.B    #4,D0
  1248.     AND.B    #$0F,n_glissfunk(A6)
  1249.     OR.B    D0,n_glissfunk(A6)
  1250.     TST.B    D0
  1251.     BEQ    mt_Return
  1252. mt_UpdateFunk
  1253.     MOVEM.L    A0/D1,-(SP)
  1254.     MOVEQ    #0,D0
  1255.     MOVE.B    n_glissfunk(A6),D0
  1256.     LSR.B    #4,D0
  1257.     BEQ.S    mt_funkend
  1258.     LEA    mt_FunkTable(PC),A0
  1259.     MOVE.B    (A0,D0.W),D0
  1260.     ADD.B    D0,n_funkoffset(A6)
  1261.     BTST    #7,n_funkoffset(A6)
  1262.     BEQ.S    mt_funkend
  1263.     CLR.B    n_funkoffset(A6)
  1264.  
  1265.     MOVE.L    n_loopstart(A6),D0
  1266.     MOVEQ    #0,D1
  1267.     MOVE.W    n_replen(A6),D1
  1268.     ADD.L    D1,D0
  1269.     ADD.L    D1,D0
  1270.     MOVE.L    n_wavestart(A6),A0
  1271.     ADDQ.L    #1,A0
  1272.     CMP.L    D0,A0
  1273.     BLO.S    mt_funkok
  1274.     MOVE.L    n_loopstart(A6),A0
  1275. mt_funkok
  1276.     MOVE.L    A0,n_wavestart(A6)
  1277.     MOVEQ    #-1,D0
  1278.     SUB.B    (A0),D0
  1279.     MOVE.B    D0,(A0)
  1280. mt_funkend
  1281.     MOVEM.L    (SP)+,A0/D1
  1282.     RTS
  1283.  
  1284.  
  1285. mt_FunkTable dc.b 0,5,6,7,8,10,11,13,16,19,22,26,32,43,64,128
  1286.  
  1287. mt_VibratoTable    
  1288.     dc.b   0, 24, 49, 74, 97,120,141,161
  1289.     dc.b 180,197,212,224,235,244,250,253
  1290.     dc.b 255,253,250,244,235,224,212,197
  1291.     dc.b 180,161,141,120, 97, 74, 49, 24
  1292.  
  1293. mt_PeriodTable
  1294. ; Tuning 0, Normal
  1295.     dc.w    856,808,762,720,678,640,604,570,538,508,480,453
  1296.     dc.w    428,404,381,360,339,320,302,285,269,254,240,226
  1297.     dc.w    214,202,190,180,170,160,151,143,135,127,120,113
  1298. ; Tuning 1
  1299.     dc.w    850,802,757,715,674,637,601,567,535,505,477,450
  1300.     dc.w    425,401,379,357,337,318,300,284,268,253,239,225
  1301.     dc.w    213,201,189,179,169,159,150,142,134,126,119,113
  1302. ; Tuning 2
  1303.     dc.w    844,796,752,709,670,632,597,563,532,502,474,447
  1304.     dc.w    422,398,376,355,335,316,298,282,266,251,237,224
  1305.     dc.w    211,199,188,177,167,158,149,141,133,125,118,112
  1306. ; Tuning 3
  1307.     dc.w    838,791,746,704,665,628,592,559,528,498,470,444
  1308.     dc.w    419,395,373,352,332,314,296,280,264,249,235,222
  1309.     dc.w    209,198,187,176,166,157,148,140,132,125,118,111
  1310. ; Tuning 4
  1311.     dc.w    832,785,741,699,660,623,588,555,524,495,467,441
  1312.     dc.w    416,392,370,350,330,312,294,278,262,247,233,220
  1313.     dc.w    208,196,185,175,165,156,147,139,131,124,117,110
  1314. ; Tuning 5
  1315.     dc.w    826,779,736,694,655,619,584,551,520,491,463,437
  1316.     dc.w    413,390,368,347,328,309,292,276,260,245,232,219
  1317.     dc.w    206,195,184,174,164,155,146,138,130,123,116,109
  1318. ; Tuning 6
  1319.     dc.w    820,774,730,689,651,614,580,547,516,487,460,434
  1320.     dc.w    410,387,365,345,325,307,290,274,258,244,230,217
  1321.     dc.w    205,193,183,172,163,154,145,137,129,122,115,109
  1322. ; Tuning 7
  1323.     dc.w    814,768,725,684,646,610,575,543,513,484,457,431
  1324.     dc.w    407,384,363,342,323,305,288,272,256,242,228,216
  1325.     dc.w    204,192,181,171,161,152,144,136,128,121,114,108
  1326. ; Tuning -8
  1327.     dc.w    907,856,808,762,720,678,640,604,570,538,508,480
  1328.     dc.w    453,428,404,381,360,339,320,302,285,269,254,240
  1329.     dc.w    226,214,202,190,180,170,160,151,143,135,127,120
  1330. ; Tuning -7
  1331.     dc.w    900,850,802,757,715,675,636,601,567,535,505,477
  1332.     dc.w    450,425,401,379,357,337,318,300,284,268,253,238
  1333.     dc.w    225,212,200,189,179,169,159,150,142,134,126,119
  1334. ; Tuning -6
  1335.     dc.w    894,844,796,752,709,670,632,597,563,532,502,474
  1336.     dc.w    447,422,398,376,355,335,316,298,282,266,251,237
  1337.     dc.w    223,211,199,188,177,167,158,149,141,133,125,118
  1338. ; Tuning -5
  1339.     dc.w    887,838,791,746,704,665,628,592,559,528,498,470
  1340.     dc.w    444,419,395,373,352,332,314,296,280,264,249,235
  1341.     dc.w    222,209,198,187,176,166,157,148,140,132,125,118
  1342. ; Tuning -4
  1343.     dc.w    881,832,785,741,699,660,623,588,555,524,494,467
  1344.     dc.w    441,416,392,370,350,330,312,294,278,262,247,233
  1345.     dc.w    220,208,196,185,175,165,156,147,139,131,123,117
  1346. ; Tuning -3
  1347.     dc.w    875,826,779,736,694,655,619,584,551,520,491,463
  1348.     dc.w    437,413,390,368,347,328,309,292,276,260,245,232
  1349.     dc.w    219,206,195,184,174,164,155,146,138,130,123,116
  1350. ; Tuning -2
  1351.     dc.w    868,820,774,730,689,651,614,580,547,516,487,460
  1352.     dc.w    434,410,387,365,345,325,307,290,274,258,244,230
  1353.     dc.w    217,205,193,183,172,163,154,145,137,129,122,115
  1354. ; Tuning -1
  1355.     dc.w    862,814,768,725,684,646,610,575,543,513,484,457
  1356.     dc.w    431,407,384,363,342,323,305,288,272,256,242,228
  1357.     dc.w    216,203,192,181,171,161,152,144,136,128,121,114
  1358.  
  1359. mt_chan1temp    dc.l    0,0,0,0,0,$00010000,0,  0,0,0,0
  1360. mt_chan2temp    dc.l    0,0,0,0,0,$00020000,0,  0,0,0,0
  1361. mt_chan3temp    dc.l    0,0,0,0,0,$00040000,0,  0,0,0,0
  1362. mt_chan4temp    dc.l    0,0,0,0,0,$00080000,0,  0,0,0,0
  1363.  
  1364. mt_SampleStarts    dc.l    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1365.         dc.l    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1366.  
  1367. mt_SongDataPtr    dc.l 0
  1368. mt_speed    dc.b 6
  1369. mt_counter    dc.b 0
  1370. mt_SongPos    dc.b 0
  1371. mt_PBreakPos    dc.b 0
  1372. mt_PosJumpFlag    dc.b 0
  1373. mt_PBreakFlag    dc.b 0
  1374. mt_LowMask    dc.b 0
  1375. mt_PattDelTime    dc.b 0
  1376. mt_PattDelTime2    dc.b 0
  1377. mt_Enable    dc.b 0
  1378. mt_PatternPos    dc.w 0
  1379. mt_DMACONtemp    dc.w 0
  1380. ciatime2:    dc.l    0
  1381.  
  1382. ;/* End of File */
  1383.  
  1384.  
  1385.     *******************************************************
  1386. oldint:        dc.l    0
  1387. olddma:        dc.l    0
  1388. oldv3:        dc.l    0
  1389. gfxlib:        dc.b    "graphics.library",0
  1390.         
  1391. delay:        dc.l    0        
  1392.         
  1393. equ1list:    dc.l    black_list
  1394. equ2list:    dc.l    black_list
  1395. equ3list:    dc.l    black_list
  1396. equ4list:    dc.l    black_list
  1397.  
  1398. black_list    dc.w    $000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000
  1399.  
  1400. yellow_list:
  1401.     ;dc.w    $ff0,$ff0,$ff0,$ff0,$ff0,$ff0,$ff0,$ff0,$ff0,$ff0,$ff0,$ff0,$ff0,$ff0,$ff0
  1402.     ;dc.w    $ff0,$ff0,$ff0,$ff0,$ff0,$ff0,$ff0,$ff0,$ff0,$ff0,$ff0,$ff0,$ff0,$ff0,$ee0
  1403.     ;dc.w    $ff0,$ff0,$ff0,$ff0,$ff0,$ff0,$ff0,$ff0,$ff0,$ff0,$ff0,$ff0,$ff0,$ee0,$dd0
  1404.     ;dc.w    $ff0,$ff0,$ff0,$ff0,$ff0,$ff0,$ff0,$ff0,$ff0,$ff0,$ff0,$ff0,$ee0,$dd0,$cc0
  1405.     dc.w    $ff0,$ff0,$ff0,$ff0,$ff0,$ff0,$ff0,$ff0,$ff0,$ff0,$ff0,$ee0,$dd0,$cc0,$bb0
  1406.     dc.w    $ff0,$ff0,$ff0,$ff0,$ff0,$ff0,$ff0,$ff0,$ff0,$ff0,$ee0,$dd0,$cc0,$bb0,$aa0
  1407.     dc.w    $ff0,$ff0,$ff0,$ff0,$ff0,$ff0,$ff0,$ff0,$ff0,$ee0,$dd0,$cc0,$bb0,$aa0,$990
  1408.     dc.w    $ff0,$ff0,$ff0,$ff0,$ff0,$ff0,$ff0,$ff0,$ee0,$dd0,$cc0,$bb0,$aa0,$990,$880
  1409.     dc.w    $ff0,$ff0,$ff0,$ff0,$ff0,$ff0,$ff0,$ee0,$dd0,$cc0,$bb0,$aa0,$990,$880,$770
  1410.     dc.w    $ff0,$ff0,$ff0,$ff0,$ff0,$ff0,$ee0,$dd0,$cc0,$bb0,$aa0,$990,$880,$770,$660
  1411.     dc.w    $ff0,$ff0,$ff0,$ff0,$ff0,$ee0,$dd0,$cc0,$bb0,$aa0,$990,$880,$770,$660,$550
  1412.     dc.w    $ff0,$ff0,$ff0,$ff0,$ee0,$dd0,$cc0,$bb0,$aa0,$990,$880,$770,$660,$550,$440
  1413.     dc.w    $ff0,$ff0,$ff0,$ee0,$dd0,$cc0,$bb0,$aa0,$990,$880,$770,$660,$550,$440,$330
  1414.     dc.w    $ff0,$ff0,$ee0,$dd0,$cc0,$bb0,$aa0,$990,$880,$770,$660,$550,$440,$330,$220
  1415.     dc.w    $ff0,$ee0,$dd0,$cc0,$bb0,$aa0,$990,$880,$770,$660,$550,$440,$330,$220,$110
  1416.     dc.w    $ff0,$ee0,$dd0,$cc0,$bb0,$aa0,$990,$880,$770,$660,$550,$440,$330,$220,$110
  1417.     dc.w    $ee0,$dd0,$cc0,$bb0,$aa0,$990,$880,$770,$660,$550,$440,$330,$220,$110,$000
  1418.     dc.w    $dd0,$cc0,$bb0,$aa0,$990,$880,$770,$660,$550,$440,$330,$220,$110,$000,$000
  1419.     dc.w    $cc0,$bb0,$aa0,$990,$880,$770,$660,$550,$440,$330,$220,$110,$000,$000,$000
  1420.     dc.w    $bb0,$aa0,$990,$880,$770,$660,$550,$440,$330,$220,$110,$000,$000,$000,$000
  1421.     dc.w    $aa0,$990,$880,$770,$660,$550,$440,$330,$220,$110,$000,$000,$000,$000,$000
  1422.     dc.w    $990,$880,$770,$660,$550,$440,$330,$220,$110,$000,$000,$000,$000,$000,$000
  1423.     dc.w    $880,$770,$660,$550,$440,$330,$220,$110,$000,$000,$000,$000,$000,$000,$000
  1424.     dc.w    $770,$660,$550,$440,$330,$220,$110,$000,$000,$000,$000,$000,$000,$000,$000
  1425.     dc.w    $660,$550,$440,$330,$220,$110,$000,$000,$000,$000,$000,$000,$000,$000,$000
  1426.     dc.w    $550,$440,$330,$220,$110,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000
  1427.     dc.w    $440,$330,$220,$110,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000
  1428.     dc.w    $330,$220,$110,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000
  1429.     dc.w    $220,$110,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000
  1430.     dc.w    $110,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000
  1431.     dc.w    $000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000
  1432.  
  1433.  
  1434. red_list:    ;dc.w    $f00,$f00,$f00,$f00,$f00,$f00,$f00,$f00,$f00,$f00,$f00,$f00,$f00,$f00,$f00
  1435.     ;dc.w    $f00,$f00,$f00,$f00,$f00,$f00,$f00,$f00,$f00,$f00,$f00,$f00,$f00,$f00,$e00
  1436.     ;dc.w    $f00,$f00,$f00,$f00,$f00,$f00,$f00,$f00,$f00,$f00,$f00,$f00,$f00,$e00,$d00
  1437.     ;dc.w    $f00,$f00,$f00,$f00,$f00,$f00,$f00,$f00,$f00,$f00,$f00,$f00,$e00,$d00,$c00
  1438.     dc.w    $f00,$f00,$f00,$f00,$f00,$f00,$f00,$f00,$f00,$f00,$f00,$e00,$d00,$c00,$b00
  1439.     dc.w    $f00,$f00,$f00,$f00,$f00,$f00,$f00,$f00,$f00,$f00,$e00,$d00,$c00,$b00,$a00
  1440.     dc.w    $f00,$f00,$f00,$f00,$f00,$f00,$f00,$f00,$f00,$e00,$d00,$c00,$b00,$a00,$900
  1441.     dc.w    $f00,$f00,$f00,$f00,$f00,$f00,$f00,$f00,$e00,$d00,$c00,$b00,$a00,$900,$800
  1442.     dc.w    $f00,$f00,$f00,$f00,$f00,$f00,$f00,$e00,$d00,$c00,$b00,$a00,$900,$800,$700
  1443.     dc.w    $f00,$f00,$f00,$f00,$f00,$f00,$e00,$d00,$c00,$b00,$a00,$900,$800,$700,$600
  1444.     dc.w    $f00,$f00,$f00,$f00,$f00,$e00,$d00,$c00,$b00,$a00,$900,$800,$700,$600,$500
  1445.     dc.w    $f00,$f00,$f00,$f00,$e00,$d00,$c00,$b00,$a00,$900,$800,$700,$600,$500,$400
  1446.     dc.w    $f00,$f00,$f00,$e00,$d00,$c00,$b00,$a00,$900,$800,$700,$600,$500,$400,$300
  1447.     dc.w    $f00,$f00,$e00,$d00,$c00,$b00,$a00,$900,$800,$700,$600,$500,$400,$300,$200
  1448.     dc.w    $f00,$e00,$d00,$c00,$b00,$a00,$900,$800,$700,$600,$500,$400,$300,$200,$100        
  1449.     dc.w    $e00,$d00,$c00,$b00,$a00,$900,$800,$700,$600,$500,$400,$300,$200,$100,$000
  1450.     dc.w    $d00,$c00,$b00,$a00,$900,$800,$700,$600,$500,$400,$300,$200,$100,$000,$000
  1451.     dc.w    $c00,$b00,$a00,$900,$800,$700,$600,$500,$400,$300,$200,$100,$000,$000,$000
  1452.     dc.w    $b00,$a00,$900,$800,$700,$600,$500,$400,$300,$200,$100,$000,$000,$000,$000
  1453.     dc.w    $a00,$900,$800,$700,$600,$500,$400,$300,$200,$100,$000,$000,$000,$000,$000
  1454.     dc.w    $900,$800,$700,$600,$500,$400,$300,$200,$100,$000,$000,$000,$000,$000,$000
  1455.     dc.w    $800,$700,$600,$500,$400,$300,$200,$100,$000,$000,$000,$000,$000,$000,$000
  1456.     dc.w    $700,$600,$500,$400,$300,$200,$100,$000,$000,$000,$000,$000,$000,$000,$000
  1457.     dc.w    $600,$500,$400,$300,$200,$100,$000,$000,$000,$000,$000,$000,$000,$000,$000
  1458.     dc.w    $500,$400,$300,$200,$100,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000
  1459.     dc.w    $400,$300,$200,$100,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000
  1460.     dc.w    $300,$200,$100,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000
  1461.     dc.w    $200,$100,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000
  1462.     dc.w    $100,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000
  1463.     dc.w    $000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000
  1464.  
  1465.  
  1466. mag_list:    ;dc.w    $f0f,$f0f,$f0f,$f0f,$f0f,$f0f,$f0f,$f0f,$f0f,$f0f,$f0f,$f0f,$f0f,$f0f,$f0f
  1467.     ;dc.w    $f0f,$f0f,$f0f,$f0f,$f0f,$f0f,$f0f,$f0f,$f0f,$f0f,$f0f,$f0f,$f0f,$f0f,$e0e
  1468.     ;dc.w    $f0f,$f0f,$f0f,$f0f,$f0f,$f0f,$f0f,$f0f,$f0f,$f0f,$f0f,$f0f,$f0f,$e0e,$d0d
  1469.     ;dc.w    $f0f,$f0f,$f0f,$f0f,$f0f,$f0f,$f0f,$f0f,$f0f,$f0f,$f0f,$f0f,$e0e,$d0d,$c0c
  1470.     dc.w    $f0f,$f0f,$f0f,$f0f,$f0f,$f0f,$f0f,$f0f,$f0f,$f0f,$f0f,$e0e,$d0d,$c0c,$b0b
  1471.     dc.w    $f0f,$f0f,$f0f,$f0f,$f0f,$f0f,$f0f,$f0f,$f0f,$f0f,$e0e,$d0d,$c0c,$b0b,$a0a
  1472.     dc.w    $f0f,$f0f,$f0f,$f0f,$f0f,$f0f,$f0f,$f0f,$f0f,$e0e,$d0d,$c0c,$b0b,$a0a,$909
  1473.     dc.w    $f0f,$f0f,$f0f,$f0f,$f0f,$f0f,$f0f,$f0f,$e0e,$d0d,$c0c,$b0b,$a0a,$909,$808
  1474.     dc.w    $f0f,$f0f,$f0f,$f0f,$f0f,$f0f,$f0f,$e0e,$d0d,$c0c,$b0b,$a0a,$909,$808,$707
  1475.     dc.w    $f0f,$f0f,$f0f,$f0f,$f0f,$f0f,$e0e,$d0d,$c0c,$b0b,$a0a,$909,$808,$707,$606
  1476.     dc.w    $f0f,$f0f,$f0f,$f0f,$f0f,$e0e,$d0d,$c0c,$b0b,$a0a,$909,$808,$707,$606,$505
  1477.     dc.w    $f0f,$f0f,$f0f,$f0f,$e0e,$d0d,$c0c,$b0b,$a0a,$909,$808,$707,$606,$505,$404
  1478.     dc.w    $f0f,$f0f,$f0f,$e0e,$d0d,$c0c,$b0b,$a0a,$909,$808,$707,$606,$505,$404,$303
  1479.     dc.w    $f0f,$f0f,$e0e,$d0d,$c0c,$b0b,$a0a,$909,$808,$707,$606,$505,$404,$303,$202
  1480.     dc.w    $f0f,$e0e,$d0d,$c0c,$b0b,$a0a,$909,$808,$707,$606,$505,$404,$303,$202,$101
  1481.     dc.w    $f0f,$e0e,$d0d,$c0c,$b0b,$a0a,$909,$808,$707,$606,$505,$404,$303,$202,$101
  1482.     dc.w    $e0e,$d0d,$c0c,$b0b,$a0a,$909,$808,$707,$606,$505,$404,$303,$202,$101,$000
  1483.     dc.w    $d0d,$c0c,$b0b,$a0a,$909,$808,$707,$606,$505,$404,$303,$202,$101,$000,$000
  1484.     dc.w    $c0c,$b0b,$a0a,$909,$808,$707,$606,$505,$404,$303,$202,$101,$000,$000,$000
  1485.     dc.w    $b0b,$a0a,$909,$808,$707,$606,$505,$404,$303,$202,$101,$000,$000,$000,$000
  1486.     dc.w    $a0a,$909,$808,$707,$606,$505,$404,$303,$202,$101,$000,$000,$000,$000,$000
  1487.     dc.w    $909,$808,$707,$606,$505,$404,$303,$202,$101,$000,$000,$000,$000,$000,$000
  1488.     dc.w    $808,$707,$606,$505,$404,$303,$202,$101,$000,$000,$000,$000,$000,$000,$000
  1489.     dc.w    $707,$606,$505,$404,$303,$202,$101,$000,$000,$000,$000,$000,$000,$000,$000
  1490.     dc.w    $606,$505,$404,$303,$202,$101,$000,$000,$000,$000,$000,$000,$000,$000,$000
  1491.     dc.w    $505,$404,$303,$202,$101,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000
  1492.     dc.w    $404,$303,$202,$101,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000
  1493.     dc.w    $303,$202,$101,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000
  1494.     dc.w    $202,$101,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000
  1495.     dc.w    $101,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000
  1496.     dc.w    $000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000
  1497.  
  1498. green_list:    ;dc.w    $0f0,$0f0,$0f0,$0f0,$0f0,$0f0,$0f0,$0f0,$0f0,$0f0,$0f0,$0f0,$0f0,$0f0,$0f0
  1499.     ;dc.w    $0f0,$0f0,$0f0,$0f0,$0f0,$0f0,$0f0,$0f0,$0f0,$0f0,$0f0,$0f0,$0f0,$0f0,$0e0
  1500.     ;dc.w    $0f0,$0f0,$0f0,$0f0,$0f0,$0f0,$0f0,$0f0,$0f0,$0f0,$0f0,$0f0,$0f0,$0e0,$0d0
  1501.     ;dc.w    $0f0,$0f0,$0f0,$0f0,$0f0,$0f0,$0f0,$0f0,$0f0,$0f0,$0f0,$0f0,$0e0,$0d0,$0c0
  1502.     dc.w    $0f0,$0f0,$0f0,$0f0,$0f0,$0f0,$0f0,$0f0,$0f0,$0f0,$0f0,$0e0,$0d0,$0c0,$0b0
  1503.     dc.w    $0f0,$0f0,$0f0,$0f0,$0f0,$0f0,$0f0,$0f0,$0f0,$0f0,$0e0,$0d0,$0c0,$0b0,$0a0
  1504.     dc.w    $0f0,$0f0,$0f0,$0f0,$0f0,$0f0,$0f0,$0f0,$0f0,$0e0,$0d0,$0c0,$0b0,$0a0,$090
  1505.     dc.w    $0f0,$0f0,$0f0,$0f0,$0f0,$0f0,$0f0,$0f0,$0e0,$0d0,$0c0,$0b0,$0a0,$090,$080
  1506.     dc.w    $0f0,$0f0,$0f0,$0f0,$0f0,$0f0,$0f0,$0e0,$0d0,$0c0,$0b0,$0a0,$090,$080,$070
  1507.     dc.w    $0f0,$0f0,$0f0,$0f0,$0f0,$0f0,$0e0,$0d0,$0c0,$0b0,$0a0,$090,$080,$070,$060
  1508.     dc.w    $0f0,$0f0,$0f0,$0f0,$0f0,$0e0,$0d0,$0c0,$0b0,$0a0,$090,$080,$070,$060,$050
  1509.     dc.w    $0f0,$0f0,$0f0,$0f0,$0e0,$0d0,$0c0,$0b0,$0a0,$090,$080,$070,$060,$050,$040
  1510.     dc.w    $0f0,$0f0,$0f0,$0e0,$0d0,$0c0,$0b0,$0a0,$090,$080,$070,$060,$050,$040,$030
  1511.     dc.w    $0f0,$0f0,$0e0,$0d0,$0c0,$0b0,$0a0,$090,$080,$070,$060,$050,$040,$030,$020
  1512.     dc.w    $0f0,$0e0,$0d0,$0c0,$0b0,$0a0,$090,$080,$070,$060,$050,$040,$030,$020,$010
  1513.     dc.w    $0f0,$0e0,$0d0,$0c0,$0b0,$0a0,$090,$080,$070,$060,$050,$040,$030,$020,$010
  1514.     dc.w    $0e0,$0d0,$0c0,$0b0,$0a0,$090,$080,$070,$060,$050,$040,$030,$020,$010,$000
  1515.     dc.w    $0d0,$0c0,$0b0,$0a0,$090,$080,$070,$060,$050,$040,$030,$020,$010,$000,$000
  1516.     dc.w    $0c0,$0b0,$0a0,$090,$080,$070,$060,$050,$040,$030,$020,$010,$000,$000,$000
  1517.     dc.w    $0b0,$0a0,$090,$080,$070,$060,$050,$040,$030,$020,$010,$000,$000,$000,$000
  1518.     dc.w    $0a0,$090,$080,$070,$060,$050,$040,$030,$020,$010,$000,$000,$000,$000,$000
  1519.     dc.w    $090,$080,$070,$060,$050,$040,$030,$020,$010,$000,$000,$000,$000,$000,$000
  1520.     dc.w    $080,$070,$060,$050,$040,$030,$020,$010,$000,$000,$000,$000,$000,$000,$000
  1521.     dc.w    $070,$060,$050,$040,$030,$020,$010,$000,$000,$000,$000,$000,$000,$000,$000
  1522.     dc.w    $060,$050,$040,$030,$020,$010,$000,$000,$000,$000,$000,$000,$000,$000,$000
  1523.     dc.w    $050,$040,$030,$020,$010,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000
  1524.     dc.w    $040,$030,$020,$010,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000
  1525.     dc.w    $030,$020,$010,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000
  1526.     dc.w    $020,$010,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000
  1527.     dc.w    $010,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000
  1528.     dc.w    $000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000
  1529.  
  1530. cyan_list:    ;dc.w    $0FF,$0FF,$0FF,$0FF,$0FF,$0FF,$0FF,$0FF,$0FF,$0FF,$0FF,$0FF,$0FF,$0FF,$0FF
  1531.     ;dc.w    $0FF,$0FF,$0FF,$0FF,$0FF,$0FF,$0FF,$0FF,$0FF,$0FF,$0FF,$0FF,$0FF,$0FF,$0EE
  1532.     ;dc.w    $0FF,$0FF,$0FF,$0FF,$0FF,$0FF,$0FF,$0FF,$0FF,$0FF,$0FF,$0FF,$0FF,$0EE,$0DD
  1533.     ;dc.w    $0FF,$0FF,$0FF,$0FF,$0FF,$0FF,$0FF,$0FF,$0FF,$0FF,$0FF,$0FF,$0EE,$0DD,$0CC
  1534.     dc.w    $0FF,$0FF,$0FF,$0FF,$0FF,$0FF,$0FF,$0FF,$0FF,$0FF,$0FF,$0EE,$0DD,$0CC,$0BB
  1535.     dc.w    $0FF,$0FF,$0FF,$0FF,$0FF,$0FF,$0FF,$0FF,$0FF,$0FF,$0EE,$0DD,$0CC,$0BB,$0AA
  1536.     dc.w    $0FF,$0FF,$0FF,$0FF,$0FF,$0FF,$0FF,$0FF,$0FF,$0EE,$0DD,$0CC,$0BB,$0AA,$099
  1537.     dc.w    $0FF,$0FF,$0FF,$0FF,$0FF,$0FF,$0FF,$0FF,$0EE,$0DD,$0CC,$0BB,$0AA,$099,$088
  1538.     dc.w    $0FF,$0FF,$0FF,$0FF,$0FF,$0FF,$0FF,$0EE,$0DD,$0CC,$0BB,$0AA,$099,$088,$077
  1539.     dc.w    $0FF,$0FF,$0FF,$0FF,$0FF,$0FF,$0EE,$0DD,$0CC,$0BB,$0AA,$099,$088,$077,$066
  1540.     dc.w    $0FF,$0FF,$0FF,$0FF,$0FF,$0EE,$0DD,$0CC,$0BB,$0AA,$099,$088,$077,$066,$055
  1541.     dc.w    $0FF,$0FF,$0FF,$0FF,$0EE,$0DD,$0CC,$0BB,$0AA,$099,$088,$077,$066,$055,$044
  1542.     dc.w    $0FF,$0FF,$0FF,$0EE,$0DD,$0CC,$0BB,$0AA,$099,$088,$077,$066,$055,$044,$033
  1543.     dc.w    $0FF,$0FF,$0EE,$0DD,$0CC,$0BB,$0AA,$099,$088,$077,$066,$055,$044,$033,$022
  1544.     dc.w    $0FF,$0EE,$0DD,$0CC,$0BB,$0AA,$099,$088,$077,$066,$055,$044,$033,$022,$011
  1545.     dc.w    $0FF,$0EE,$0DD,$0CC,$0BB,$0AA,$099,$088,$077,$066,$055,$044,$033,$022,$011
  1546.     dc.w    $0EE,$0DD,$0CC,$0BB,$0AA,$099,$088,$077,$066,$055,$044,$033,$022,$011,$000
  1547.     dc.w    $0DD,$0CC,$0BB,$0AA,$099,$088,$077,$066,$055,$044,$033,$022,$011,$000,$000
  1548.     dc.w    $0CC,$0BB,$0AA,$099,$088,$077,$066,$055,$044,$033,$022,$011,$000,$000,$000
  1549.     dc.w    $0BB,$0AA,$099,$088,$077,$066,$055,$044,$033,$022,$011,$000,$000,$000,$000
  1550.     dc.w    $0AA,$099,$088,$077,$066,$055,$044,$033,$022,$011,$000,$000,$000,$000,$000
  1551.     dc.w    $099,$088,$077,$066,$055,$044,$033,$022,$011,$000,$000,$000,$000,$000,$000
  1552.     dc.w    $088,$077,$066,$055,$044,$033,$022,$011,$000,$000,$000,$000,$000,$000,$000
  1553.     dc.w    $077,$066,$055,$044,$033,$022,$011,$000,$000,$000,$000,$000,$000,$000,$000
  1554.     dc.w    $066,$055,$044,$033,$022,$011,$000,$000,$000,$000,$000,$000,$000,$000,$000
  1555.     dc.w    $055,$044,$033,$022,$011,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000
  1556.     dc.w    $044,$033,$022,$011,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000
  1557.     dc.w    $033,$022,$011,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000
  1558.     dc.w    $022,$011,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000
  1559.     dc.w    $011,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000
  1560.     dc.w    $000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000
  1561.  
  1562. white_list:    ;dc.w    $FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF
  1563.     ;dc.w    $FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$EEE
  1564.     ;dc.w    $FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$EEE,$DDD
  1565.     ;dc.w    $FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$EEE,$DDD,$CCC
  1566.     dc.w    $FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$EEE,$DDD,$CCC,$BBB
  1567.     dc.w    $FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$EEE,$DDD,$CCC,$BBB,$AAA
  1568.     dc.w    $FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$EEE,$DDD,$CCC,$BBB,$AAA,$999
  1569.     dc.w    $FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$EEE,$DDD,$CCC,$BBB,$AAA,$999,$888
  1570.     dc.w    $FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$EEE,$DDD,$CCC,$BBB,$AAA,$999,$888,$777
  1571.     dc.w    $FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$EEE,$DDD,$CCC,$BBB,$AAA,$999,$888,$777,$666
  1572.     dc.w    $FFF,$FFF,$FFF,$FFF,$FFF,$EEE,$DDD,$CCC,$BBB,$AAA,$999,$888,$777,$666,$555
  1573.     dc.w    $FFF,$FFF,$FFF,$FFF,$EEE,$DDD,$CCC,$BBB,$AAA,$999,$888,$777,$666,$555,$444
  1574.     dc.w    $FFF,$FFF,$FFF,$EEE,$DDD,$CCC,$BBB,$AAA,$999,$888,$777,$666,$555,$444,$333
  1575.     dc.w    $FFF,$FFF,$EEE,$DDD,$CCC,$BBB,$AAA,$999,$888,$777,$666,$555,$444,$333,$222
  1576.     dc.w    $FFF,$EEE,$DDD,$CCC,$BBB,$AAA,$999,$888,$777,$666,$555,$444,$333,$222,$111
  1577.     dc.w    $FFF,$EEE,$DDD,$CCC,$BBB,$AAA,$999,$888,$777,$666,$555,$444,$333,$222,$111
  1578.     dc.w    $EEE,$DDD,$CCC,$BBB,$AAA,$999,$888,$777,$666,$555,$444,$333,$222,$111,$000
  1579.     dc.w    $DDD,$CCC,$BBB,$AAA,$999,$888,$777,$666,$555,$444,$333,$222,$111,$000,$000
  1580.     dc.w    $CCC,$BBB,$AAA,$999,$888,$777,$666,$555,$444,$333,$222,$111,$000,$000,$000
  1581.     dc.w    $BBB,$AAA,$999,$888,$777,$666,$555,$444,$333,$222,$111,$000,$000,$000,$000
  1582.     dc.w    $AAA,$999,$888,$777,$666,$555,$444,$333,$222,$111,$000,$000,$000,$000,$000
  1583.     dc.w    $999,$888,$777,$666,$555,$444,$333,$222,$111,$000,$000,$000,$000,$000,$000
  1584.     dc.w    $888,$777,$666,$555,$444,$333,$222,$111,$000,$000,$000,$000,$000,$000,$000
  1585.     dc.w    $777,$666,$555,$444,$333,$222,$111,$000,$000,$000,$000,$000,$000,$000,$000
  1586.     dc.w    $666,$555,$444,$333,$222,$111,$000,$000,$000,$000,$000,$000,$000,$000,$000
  1587.     dc.w    $555,$444,$333,$222,$111,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000
  1588.     dc.w    $444,$333,$222,$111,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000
  1589.     dc.w    $333,$222,$111,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000
  1590.     dc.w    $222,$111,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000
  1591.     dc.w    $111,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000
  1592.     dc.w    $000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000
  1593.  
  1594. blue_list:    ;dc.w    $00F,$00F,$00F,$00F,$00F,$00F,$00F,$00F,$00F,$00F,$00F,$00F,$00F,$00F,$00F
  1595.     ;dc.w    $00F,$00F,$00F,$00F,$00F,$00F,$00F,$00F,$00F,$00F,$00F,$00F,$00F,$00F,$00E
  1596.     ;dc.w    $00F,$00F,$00F,$00F,$00F,$00F,$00F,$00F,$00F,$00F,$00F,$00F,$00F,$00E,$00D
  1597.     ;dc.w    $00F,$00F,$00F,$00F,$00F,$00F,$00F,$00F,$00F,$00F,$00F,$00F,$00E,$00D,$00C
  1598.     dc.w    $00F,$00F,$00F,$00F,$00F,$00F,$00F,$00F,$00F,$00F,$00F,$00E,$00D,$00C,$00B
  1599.     dc.w    $00F,$00F,$00F,$00F,$00F,$00F,$00F,$00F,$00F,$00F,$00E,$00D,$00C,$00B,$00A
  1600.     dc.w    $00F,$00F,$00F,$00F,$00F,$00F,$00F,$00F,$00F,$00E,$00D,$00C,$00B,$00A,$009
  1601.     dc.w    $00F,$00F,$00F,$00F,$00F,$00F,$00F,$00F,$00E,$00D,$00C,$00B,$00A,$009,$008
  1602.     dc.w    $00F,$00F,$00F,$00F,$00F,$00F,$00F,$00E,$00D,$00C,$00B,$00A,$009,$008,$007
  1603.     dc.w    $00F,$00F,$00F,$00F,$00F,$00F,$00E,$00D,$00C,$00B,$00A,$009,$008,$007,$006
  1604.     dc.w    $00F,$00F,$00F,$00F,$00F,$00E,$00D,$00C,$00B,$00A,$009,$008,$007,$006,$005
  1605.     dc.w    $00F,$00F,$00F,$00F,$00E,$00D,$00C,$00B,$00A,$009,$008,$007,$006,$005,$004
  1606.     dc.w    $00F,$00F,$00F,$00E,$00D,$00C,$00B,$00A,$009,$008,$007,$006,$005,$004,$003
  1607.     dc.w    $00F,$00F,$00E,$00D,$00C,$00B,$00A,$009,$008,$007,$006,$005,$004,$003,$002
  1608.     dc.w    $00F,$00E,$00D,$00C,$00B,$00A,$009,$008,$007,$006,$005,$004,$003,$002,$001
  1609.     dc.w    $00F,$00E,$00D,$00C,$00B,$00A,$009,$008,$007,$006,$005,$004,$003,$002,$001
  1610.     dc.w    $00E,$00D,$00C,$00B,$00A,$009,$008,$007,$006,$005,$004,$003,$002,$001,$000
  1611.     dc.w    $00D,$00C,$00B,$00A,$009,$008,$007,$006,$005,$004,$003,$002,$001,$000,$000
  1612.     dc.w    $00C,$00B,$00A,$009,$008,$007,$006,$005,$004,$003,$002,$001,$000,$000,$000
  1613.     dc.w    $00B,$00A,$009,$008,$007,$006,$005,$004,$003,$002,$001,$000,$000,$000,$000
  1614.     dc.w    $00A,$009,$008,$007,$006,$005,$004,$003,$002,$001,$000,$000,$000,$000,$000
  1615.     dc.w    $009,$008,$007,$006,$005,$004,$003,$002,$001,$000,$000,$000,$000,$000,$000
  1616.     dc.w    $008,$007,$006,$005,$004,$003,$002,$001,$000,$000,$000,$000,$000,$000,$000
  1617.     dc.w    $007,$006,$005,$004,$003,$002,$001,$000,$000,$000,$000,$000,$000,$000,$000
  1618.     dc.w    $006,$005,$004,$003,$002,$001,$000,$000,$000,$000,$000,$000,$000,$000,$000
  1619.     dc.w    $005,$004,$003,$002,$001,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000
  1620.     dc.w    $004,$003,$002,$001,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000
  1621.     dc.w    $003,$002,$001,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000
  1622.     dc.w    $002,$001,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000
  1623.     dc.w    $001,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000
  1624.     dc.w    $000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000,$000
  1625.  
  1626. col_list:        dc.l    yellow_list
  1627.         dc.l    red_list
  1628.         dc.l    mag_list
  1629.         dc.l    green_list
  1630.         dc.l    cyan_list
  1631.         dc.l    white_list
  1632.         dc.l    blue_list
  1633.         dc.l    red_list
  1634.  
  1635.     section    copperstuff,data_c
  1636.     
  1637. my_copper:    
  1638.         dc.w    $100,$5200    ; 4 bp - lo res
  1639.         dc.w    $104,$a        ; bp control reg
  1640.         dc.w    $108,0        ; bp modulo - odd
  1641.         dc.w    $10a,0        ; bp modulo - even
  1642.         dc.w    $180,0        ; colour 0 to black
  1643.         dc.w    $102,0
  1644.         
  1645.         dc.w    $08e,$2c81    ; bp window start left
  1646.         dc.w    $090,$2cc1    ; bp window bot right
  1647.  
  1648.         dc.w    $94,$b0    ; bp stop horz
  1649.         dc.w    $92,$50
  1650.         
  1651.         dc.w    $120,0,$122,0,$124,0,$126,0
  1652.         dc.w    $128,0,$12a,0,$12c,0,$12e,0
  1653.         dc.w    $130,0,$132,0,$134,0,$136,0
  1654.         dc.w    $138,0,$13a,0,$13c,0,$13e,0
  1655.         
  1656.         dc.w    $1a0,$000
  1657.  
  1658.         dc.w      $e0
  1659. bitplane0_hi:    dc.w    0,$e2
  1660. bitplane0_lo:    dc.w    0,$e4
  1661. bitplane1_hi:    dc.w    0,$e6
  1662. bitplane1_lo:    dc.w    0,$e8
  1663. bitplane2_hi:    dc.w    0,$ea
  1664. bitplane2_lo:    dc.w    0,$ec
  1665. bitplane3_hi:    dc.w    0,$ee
  1666. bitplane3_lo:    dc.w    0,$f0
  1667. bitplane4_hi:    dc.w    0,$f2
  1668. bitplane4_lo:    dc.w    0
  1669.         
  1670. redcmap1:        dc.w    $182,$000
  1671.         dc.w    $184,$000
  1672.         dc.w    $186,$000
  1673.         dc.w    $188,$000
  1674.         dc.w    $18a,$000
  1675.         dc.w    $18c,$000
  1676.         dc.w    $18e,$000
  1677.         dc.w    $190,$000
  1678.         dc.w    $192,$000
  1679.         dc.w    $194,$000
  1680.         dc.w    $196,$000
  1681.         dc.w    $198,$000
  1682.         dc.w    $19a,$000
  1683.         dc.w    $19c,$000
  1684.         dc.w    $19e,$000
  1685.  
  1686. bluecmap1:        dc.w    $1a2,$000
  1687.         dc.w    $1a4,$000
  1688.         dc.w    $1a6,$000
  1689.         dc.w    $1a8,$000
  1690.         dc.w    $1aa,$000
  1691.         dc.w    $1ac,$000
  1692.         dc.w    $1ae,$000
  1693.         dc.w    $1b0,$000
  1694.         dc.w    $1b2,$000
  1695.         dc.w    $1b4,$000
  1696.         dc.w    $1b6,$000
  1697.         dc.w    $1b8,$000
  1698.         dc.w    $1ba,$000
  1699.         dc.w    $1bc,$000
  1700.         dc.w    $1be,$000
  1701.  
  1702.         dc.w    $9091,$fffe
  1703.  
  1704. redcmap2:        dc.w    $182,$000
  1705.         dc.w    $184,$000
  1706.         dc.w    $186,$000
  1707.         dc.w    $188,$000
  1708.         dc.w    $18a,$000
  1709.         dc.w    $18c,$000
  1710.         dc.w    $18e,$000
  1711.         dc.w    $190,$000
  1712.         dc.w    $192,$000
  1713.         dc.w    $194,$000
  1714.         dc.w    $196,$000
  1715.         dc.w    $198,$000
  1716.         dc.w    $19a,$000
  1717.         dc.w    $19c,$000
  1718.         dc.w    $19e,$000
  1719.  
  1720. bluecmap2:        dc.w    $1a2,$000
  1721.         dc.w    $1a4,$000
  1722.         dc.w    $1a6,$000
  1723.         dc.w    $1a8,$000
  1724.         dc.w    $1aa,$000
  1725.         dc.w    $1ac,$000
  1726.         dc.w    $1ae,$000
  1727.         dc.w    $1b0,$000
  1728.         dc.w    $1b2,$000
  1729.         dc.w    $1b4,$000
  1730.         dc.w    $1b6,$000
  1731.         dc.w    $1b8,$000
  1732.         dc.w    $1ba,$000
  1733.         dc.w    $1bc,$000
  1734.         dc.w    $1be,$000
  1735.  
  1736.         dc.w    $f801,$fffe,$100,$0200
  1737.  
  1738.         dc.w    $ffe1,$fffe    ; end of ntsc screen
  1739.         dc.w    $3001,$ff00    ; end of pal screen
  1740.         dc.w    $9c,$8010    ; irq set bits - restart copper
  1741.         dc.w    $ffff,$fffe    ; end of copper list
  1742.  
  1743.  
  1744. scr1:        incbin    "dh0:data/requal/round1_small.bin"
  1745.  
  1746. mt_data:        incbin    "dh0:data/technofever/mod.techno fever #06"
  1747.         incbin    "dh0:data/totalkaos/mods/mod.total kaos #07"
  1748.     end
  1749.     
  1750.  
  1751.  
  1752.  
  1753.